# -*- coding: utf-8 -*-
# author: sixmillions
# date: 2022/3/25

# 循环语句
# while循环，for循环

# while 循环：主要是用来做递归
a = 1
while a < 6:
    print("当前a的值：", a)
    # 改变循环的条件
    a += 1

# 如果条件一直为真则会陷入死循环
# 死循环可以消耗资源，从而测试性能
# while True:
#     pass

# while else
level = 1
while level < 99:
    level += 1
else:
    # 不满足条件的时候执行
    print("当前等级：", level)
    print("恭喜达到高水平")

print("-----------------")
# for 循环：主要用来遍历（列表，集合，字典等等）
fruits = ['apple', 'orange', 'banana', 'grape']
for item in fruits:
    print(item)

print("-----------------")
# for else
for item in fruits:
    print(item)
else:
    # 都遍历完成了，才会执行
    print("没有水果了")

print("-----------------")
# break 终止当前循环
for item in fruits:
    if item == 'banana':
        print("到香蕉就停止循环")
        break
    print(item)

print("-----------------")
# break 不会执行后面的else
for item in fruits:
    if item == 'banana':
        print("到香蕉就停止循环")
        break
    print(item)
else:
    print("不是正常结束，不会执行")

print("-----------------")
# continue 跳过当前循环，开始下一次
for item in fruits:
    if item == 'banana':
        print("跳过了香蕉")
        continue
    print(item)

print("-----------------")
# continue 不会打断else
for item in fruits:
    if item == 'banana':
        print("跳过了香蕉")
        continue
    print(item)
else:
    # 都遍历完成了，才会执行
    print("continue 不会打断else，最后还是会执行")

print("-----------------")

# 让代码执行n次，用来对应其他语言的 for(int i = 0; i < 20; i++)
for i in range(0, 10):
    print(i)

print("-----------------")
# 加入步长
for i in range(0, 10, 2):
    print(i, end="|")

print()
print("-----------------")
# 倒着输出
for i in range(10, 0, -2):
    print(i, end='|')  # 0|2|4|6|8|

print()
print("-----------------")
# 操作列表，取出 1 3 5 7
list = [1, 2, 3, 4, 5, 6, 7, 8]
# for循环
for i in range(0, len(list), 2):
    print(list[i])  # 10|8|6|4|2|

print("-----------------")
# 切片实现
print(list[0::2])  # [1, 3, 5, 7]
